#ifndef __RENDER_RENDER_H__
#define __RENDER_RENDER_H__

namespace ren {
  /*
  * Enum: LineType
  * Synopsis:
  *   Enum which descibes the drawing of the type of a line.
  */
  typedef enum LineType {
    Line_TYPE_SOLID,
    Line_TYPE_DASH,
  } LineType;

  /*
  * Enum: LineCap
  * Synopsis:
  *   Enum which descibes the drawing of the ends of a line.
  */
  typedef enum LineCap {
    LINE_CAP_FLAT,
    LINE_CAP_SQUARE,
    LINE_CAP_ROUND,
    LINE_CAP_TRIANGLE
  } LineCap;

  /*
  * Enum: LineJoin
  * Synopsis:
  *   Enum which descibes the drawing of the corners on the line.
  */
  typedef enum LineJoin {
    LINE_JOIN_MITER,
    LINE_JOIN_BEVEL,
    LINE_JOIN_ROUND
  } LineJoin;

  /*
  * Enum: FillMode
  * Synopsis:
  *   Enum which descibes the drawing of the fill mode.
  */
  typedef enum FillMode {
    FILL_MODE_ALTERNATE,
    FILL_MODE_WINDING
  } FillMode;

  /*
  * Enum: CombineMode
  * Synopsis:
  *   This enumeration describes the type of combine operation
  *   to be performed.
  */
  typedef enum CombineMode {
    COMBINE_MODE_UNION,
    COMBINE_MODE_INTERSECT,
    COMBINE_MODE_XOR,
    COMBINE_MODE_EXCLUDE
  } CombineMode;

} // end namespace ren

#endif // __RENDER_RENDER_H__